package pl.vm.domain.interfaces;

import pl.vm.domain.Player;
import pl.vm.domain.VirtualTeam;
import pl.vm.domain.exceptions.InvalidPlayerException;
import pl.vm.domain.exceptions.InvalidStateException;
import pl.vm.domain.exceptions.NotEnoughFoundsException;
import pl.vm.domain.exceptions.NotEnoughSpaceException;
import pl.vm.domain.exceptions.PlayerAlreadyExistException;
import pl.vm.domain.exceptions.PlayerNotExistsException;

public interface TransferManager {

	public static final int TRANSFER_PENALTY_POINTS = 10;
	
	void playerOut(VirtualTeam team, Player player) throws PlayerNotExistsException, InvalidPlayerException, InvalidStateException;
	void playerIn(VirtualTeam team, Player player) throws NotEnoughSpaceException, PlayerAlreadyExistException, NotEnoughFoundsException, InvalidStateException;
}
